/**
 * @Author : 2037630@163.com
 * @Timestamp : 2017-04-18
 */
var d1 = require("deviceone");
var app = d1.sm("do_App");
var notify = d1.sm('do_Notification')
var log = require('util/log')
var promise = require('lib/promise')
var net = require('util/net')
var constant = require('config/constant')
var dict = require('module/dictModule')
var user = require('module/userModule')
var device = require('module/deviceModule')
// 扩展js原生对象
require('extend/Array')
require('extend/Date')
require('extend/Object')
require('extend/String')

// 启动逻辑
// 1.检测网络状态
// 2.更新字典数据
// 3.判断用户登录状态
// 4.根据用户状态进入对应页面
// TODO:中转启动页
app.on("loaded", function() {
	// 检测网络状态
	if (!net.getStatus()) {
		notify.toast('请检查网络链接')
	}

	var launchTask = []; // 启动任务列表
	var userState = user.getState(); // 用户登录状态

	// 添加更新字典任务
	launchTask.push(dict.update())

	if (userState === constant.user.state.login) {
		// 添加更新用户信息任务
		launchTask.push(user.loginByToken())
	}

	// 加载设备基础信息
	device.loadDeviceInfo()

	// 执行基础任务完成后启动程序
	promise.join(launchTask).then(function() {
		switch (userState) {
		case constant.user.state.login: {
			app.openPage({
				source : "source://view/index.ui",
				id : "index"
			});
		}
			break;
		case constant.user.state.logout: {
			app.openPage({
				source : "source://view/app/unlock.ui",
				id : "app/unlock"
			});
		}
			break;
		case constant.user.state.none:
		default:
			app.openPage({
				source : "source://view/app/login.ui",
				id : "app/login"
			});
			break;
		}
	})
});